package com.example.openim.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

/**
 * @description: 创建群聊审核信息
 * @author: xhq
 * @create: 2025-11-06 16:08
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "group_review_info")
public class GroupReviewInfo {
    @Id
    private String id;
    //群成员ID 多个逗号分隔
    @Field("member_users")
    private String memberUsers;
    //群组ID
    @Field("group_id")
    private String groupId;
    //群组名称
    @Field("group_name")
    private String groupName;
    //群公告
    @Field("notification")
    private String notification;
    //群介绍
    @Field("introduction")
    private String introduction;
    //群头像
    @Field("face_url")
    private String faceURL;
    //所有者用户id
    @Field("owner_user_id")
    private String ownerUserID;
    //创建时间
    @Field("create_time")
    private Long createTime;
    //成员数量
    @Field("member_count")
    private int memberCount;
    //群扩展字段
    @Field("ex")
    private String ex;
    //群状态
    @Field("status")
    private int status;
    //创建用户ID
    @Field("creator_user_id")
    private String creatorUserID;
    //群类型 固定为2
    @Field("group_type")
    private int groupType;
    //进群是否需要验证
    @Field("need_verification")
    private int needVerification;
    //能否查看其他群成员信息
    @Field("look_member_info")
    private int lookMemberInfo;
    //群成员是否允许添加好友
    @Field("apply_member_friend")
    private int applyMemberFriend;
    //群通知更新时间
    @Field("notification_update_time")
    private int notificationUpdateTime;
    //群通知更新人ID
    @Field("notification_user_id")
    private String notificationUserID;
    //管理员ID 多个逗号隔开
    @Field("admin_user_ids")
    private String adminUsers;
    //发送消息
    @Field("send_message")
    private String sendMessage;
    //群审核状态 0待审核 1通过 2驳回
    @Field("review_state")
    private String reviewState;
    //审核意见
    @Field("review_opinion")
    private String reviewOpinion;
    //审核时间
    @Field("review_time")
    private String reviewTime;
    //审核人ID
    @Field("review_user_id")
    private String reviewUserId;
    //审核人姓名
    @Field("review_user_name")
    private String reviewUserName;
    //是否已读  0是 1否 默认1
    @Field("read_flag")
    private String readFlag;
    //管理员是否已读  0是 1否 默认1
    @Field("admin_read_flag")
    private String adminReadFlag;
    //创建时间 格式：YYYY-MM-dd HH:mm:ss
    @Field("review_create_time")
    private String reviewCreateTime;


}
